#ifndef EMBRYO_EVALUATOR_H
#define EMBRYO_EVALUATOR_H

namespace GA {

class EmbryoIndividual;

#define EMBRYO_EVALUATOR_DEVELOPMENT_LENGTH_DEFAULT 100

class EmbryoEvaluator {
public:
	/* ctor */
	EmbryoEvaluator();

	/* dtor */
	virtual ~EmbryoEvaluator() {};

	/* development length - set/get */
	void setDevelopmentLength(int length);
	int getDevelopmentLength() const;

	/* evaluate */
	virtual double evaluate(const EmbryoIndividual& individual) = 0;

private:
	/* development length */
	int _developmentLength;
};

} // GA

#endif // EVALUATOR_H

